
/*
 * Gustavo Sanchez 10313 
 * Algoritmos y estructura de datos
 * Seccion: 20
 */

import java.util.*;

public class Driver {
    public static void main(String[] args) {
        char actual;
        String operacion;
        Scanner readln=new Scanner(System.in);
        Pila<Integer> datos = new Pila<Integer>();
        int numero=0;
        int suma;
        
        System.out.println("Ingrese la operacion en postfix que desea realizar");
        operacion=readln.nextLine();
        for(int x=0; x<(operacion.length()); x++){
            actual=operacion.charAt(x);
            int y=0;
            suma=0;
            if((actual>=48)&&(actual<=57)){
                y=1;
                while(((x+y)<operacion.length())&&((operacion.charAt(x+y)>=48)&&((operacion.charAt(x+y))<=57))){
                    y++;
                }
                int t=y;
                
                for(int n=x; n<(x+y); n++){
                    int dato=(operacion.charAt(n)-48);
                   
                    suma+=dato*(Math.pow(10, t-1));
                    
                    t--;
                }
                datos.push(suma);
            }
            
            switch (actual){
                case '+':
                    int r=datos.pop();
                    int s=datos.pop();
                    numero=r+s;
                    datos.push(numero);
 
                break;
                case '-':
                    
                    numero=datos.pop()-datos.pop();
                    datos.push(numero);
                break;
                case '*':
                    numero=datos.pop()*datos.pop();
                    datos.push(numero);
       
                break;
                case '/':
                    int arriba=datos.pop();
                    numero=datos.pop()/arriba;
                    datos.push(numero);
                    
                break;
                default:
             
                break;
            }
            
            
        
            x=(x--)+y;
               
        }
        
        System.out.println("El resultado es: "+ numero);
    }
}


